"""
@author: tk
@file: 习题7.py
@time: 2022/11/16 14:37
"""
# 7、写一个点歌程序，
#      比如：界面选择  华语女歌手，华语男歌手等
#                选择华语女歌手 输出保存好的，华语女歌手信息
#                 邓紫棋
#                 张韶涵
#                  ....
#                  再选择对应的华语女歌手  然后输出这个歌手可以点的曲目  例如，邓紫棋
#                  泡沫
#                  光年之外
#                  ....
#                  再选择要唱的曲目
#                   选择的过程中，增加代码的可读性健壮性，该做判断的地方做判断
# 重点是： 熟悉容器类型，你应该以什么样的方式保存这些信息，不一定按照后面的示例来，可以有自己的想法。
# 示例：{“华语女歌手”:{"邓紫棋":["泡沫"、"光年之外"], "张韶涵":["隐形的翅膀"]}}
sing = {
    "华语女歌手": {"邓紫棋": ["光年之外", "泡沫"], "张韶涵": ["隐形的翅膀", "篇章"]},
    "华语男歌手": {"周杰伦": ["稻香", "告白气球"], "许嵩": ["玫瑰花的葬礼", "多余的解释"]},
}


def singing(x, y):
    z = input("你想唱的歌:")
    if z == "1":
        print("即将播放:", sing[x][y][0])
    elif z == "2":
        print("即将播放:", sing[x][y][1])
    elif z == "3":
        if y == "邓紫棋" or y == "张韶涵":
            x = "a"
            menu(x)
        elif y == "周杰伦" or y == "许嵩":
            x = "b"
            menu(x)
    else:
        print("您的操作错误,请输入正确的操作!!!!!!!!!!!")
        singing(x, y)


def singer1(x):
    y = input("选择歌手:")
    if y == "1":
        y = "邓紫棋"
        print("1.光年之外\n2.泡沫\n3.返回")
        singing(x, y)
    elif y == "2":
        y = "张韶涵"
        print("1.隐形的翅膀\n2.篇章\n3.返回")
        singing(x, y)
    elif y == "3":
        man()
    else:
        print("您的操作错误,请输入正确的操作!!!!!!!!!!!")
        singer1(x)


def singer2(x):
    y = input("选择歌手:")
    if y == "1":
        y = "周杰伦"
        print("1.稻香\n2.告白气球\n3.返回")
        singing(x, y)
    elif y == "2":
        y = "许嵩"
        print("1.玫瑰花的葬礼\n2.多余的解释\n3.返回")
        singing(x, y)
    elif y == "3":
        man()
    else:
        print("您的操作错误,请输入正确的操作!!!!!!!!!!!")
        singer2()


def man():
    print("欢迎来到点歌界面\na.华语女歌手\nb.华语男歌手\nq.结束")
    x = input("请选择歌手籍贯:")
    menu(x)


def menu(x):
    if x == "a":
        x = "华语女歌手"
        print("1.邓紫棋\n2.张韶涵\n3.返回")
        singer1(x)
    elif x == "b":
        x = "华语男歌手"
        print("1.周杰伦\n2.许嵩\n3.返回")
        singer2(x)
    elif x == "q":
        exit()
    else:
        print("您的操作错误,请输入正确的操作!!!!!!!!!!!")
        man()


man()
